#ifndef __2C1D824D_7DDC_41fd_B443_C1F1663C802A__
#define __2C1D824D_7DDC_41fd_B443_C1F1663C802A__

#include "../xos/head.h"

/////////////////////////////////////////////////////////////////////////////////////////
// 
namespace xos
{
    // 
    // i_handle interface
    // 
    class i_handle
    {
    public:
        virtual ~i_handle(){}

    public: 
        // 
        // return obj type
        // 
        virtual i_xos::enumXosObj obj_type() = 0;

        // 
        // get user data
        // 
        virtual void * get_user_data( void ** ppvUserData ) = 0;

        // 
        // set user data
        // 
        virtual int set_user_data( void * pUserData ) = 0;

        // 
        // close 
        // 
        virtual int close() = 0;

        // 
        // release
        // 
        virtual int release() = 0;
    };
}

#endif // __2C1D824D_7DDC_41fd_B443_C1F1663C802A__
